package com.kern.proxytest;

import java.lang.reflect.Proxy;

/**
 *  测试类
 * Created by caoshi at 19:26 2021-07-18
 */
public class ProxyMain {

    public static void main(String[] args) {
        // 创建目标对象
        UsbSell usbSell = new UsbKingFactory();

        // 创建InvocationHandler 对象
        MySellHandler handler = new MySellHandler(usbSell);

        // 创建代理对象
        UsbSell proxy = (UsbSell) Proxy.newProxyInstance(usbSell.getClass().getClassLoader(),
                usbSell.getClass().getInterfaces(), handler);

        // proxy = com.sun.proxy.$Proxy0 这是动态代理创建的对象
        System.out.println("proxy = " + proxy.getClass().getName());

        // 代理对象执行方法
        float sell = proxy.sell(1);
        System.out.println("sell = " + sell);

    }

}
